<div id="content">
	<h1>关系型 Active Record</h1>
	<p class="mar_t_10">
	　　我们已经了解了怎样使用 Active Record (AR) 从单个数据表中获取数据。 在本节中，我们讲解怎样使用 AR 连接多个相关数据表并取回关联（join）后的数据集。<br />
	　　不过，首先需要注意的是：现版本仅以当前A模型关联其他模型，不支持A关联B模型，B模型又去关联C模型或者其他模型。但可以A模型关联B模型，又关联C模型....又关联N模型。<br />
	　　下面例子来介绍定义关联查询：
	</p>
	<pre class="syntax php">&lt;?php
	class Post extends dpActiveRecord
	{
	   	....
		public function relations()
		{
			return array(
				'rela_user' => array(
					'user', 'uid', 'user_id'
				),
			);
		}
	   	....
	}
?&gt;</pre>
	<br />
	<p class="mar_t_10">
	　　上面是最简单的定义过程，但介绍了如何定义一个关联查询，<strong>rela_user</strong>是关联查询名，数组的第一个参数 <strong>user</strong> 是要关联的数据模型名， 代表要关联 <strong>user</strong> 表，第二个参数是代表关联ID，这个ID是本模型的外键ID，第三个参数为 user 模型的外键ID，如果为空会主动查找 user 表的主键名。<br />
	　　下面展示如何获取关联查询的数据：
	</p>
	<pre class="syntax php">&lt;?php
	$list = Post::Model()->rela_user()->finds();
?&gt;</pre>
	<br />
	<p class="mar_t_10">
	　　上面的代码展示了如何获取关联查询的数据，我们发现其实和单表操作是一样的，只是中间加了个操作方法，而方法名就是<strong>关联查询名</strong>， 如此，我们可以定义多个，进行 N 个表的关联查询。同时，AR 不仅仅支持关联查询，也支持关联删除，关联更新，关联插入等操作。<br />
	　　下面给出完整的参数格式：
	</p>
	<pre class="syntax php">&lt;?php
	public function relations()
	{
		return array(
			'关联查询名'=>array(
				'关联模型名',
				'本模型外键ID',
				'关联模型外键ID',
				'设置B模型要取的字段，默认为*',
				'WHERE查询条件，也可使用查询范围设置查询条件',
				'JOIN类型，默认OUTER JOIN，支持left right inner full'
			)
		);
	}
?&gt;</pre>
</div>
<script type="text/javascript">
$(function() {
	jQuery.syntax();
});
</script>